/*
 * c_bloque.h
 *
 *  Created on: 27 Apr 2010
 *      Author: osky
 */

#ifndef C_BLOQUE_H_
#define C_BLOQUE_H_

#include "constantes.h"

class c_bloque
{
private:
	char* nombre;
	char mem_buffer [LARGO_BLOQUE];
	
    unsigned int nro_de_bloque;
    unsigned int posicion;
    unsigned int largo_bloque;


public:

/* Constructor - Inicializa variables a cero */
    c_bloque ();

/* Asigna un numero de bloque */
    void set_nro ( unsigned int n_bloque);

/* Establece la posicion donde se va a hacer la proxima lectura/escritura */
    int set_pos (unsigned int pos);

/* Devuelve el largo total del bloque */
    unsigned int largo ();

/* Devuelve el espacio libre asignado */
    unsigned int espacio_libre ();

/* Inserta elemento dentro del bloque */
    int add (int valor);	/* Para insertar enteros */


/* Lee elemeentos dentro del bloque */
    int get (unsigned int *valor);

/* Lee elemeentos dentro del bloque */
    int get (int *valor);

    int add (void *valor, unsigned int sizedato);

    int get (void **valor, unsigned int sizedato);

    /*************************************************************/

    /*** GRABA EL BLOQUE DE MEMORIA EN UN ARCHIVO ***************/
    int save ();
    int load ();

};
#endif /* C_BLOQUE_H_ */
